import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Hua YY
 * Date: 2023 —10 —29
 * Time: 18:03
 */
public class test_10_29 {

    /*
    public static void main(String[] args) {
        int [] array1 = new int[]{1,2,3,4};
        int [] array2 = new int[10];
        *//*  复制数组
        方法一：
        int [] array2 = new int[4];
        for (int i = 0; i < array1.length; i++) {
            array2[i] = array1[i];
        }
        *//*


        *//*
        //方法二：用Array.copyof(数组名，数组长度)，还可以扩容！！
        int [] array2 = Arrays.copyOf(array1,array1.length*2);
        *//*


        *//*
        //方法三：Array.copyofRange(数组名，起始元素下标，结束元素下标)
        int [] array2 = Arrays.copyOfRange(array1,0,2);
        *//*

        //方法四：System.arraycopy(源数组，源数组起始下标，目的数组，目的数组起始下标，拷贝的长度)
        //注明：拷贝的长度不能超过最大长度，否则会报错，空指针异常。
        System.arraycopy(array1,0,array2,0,4);
        System.out.println(Arrays.toString(array2));
    }
     */


    public static void main(String[] args) {
        //二维数组
        //三种表示方法
        int[][] array1 = {  {1,2,3,4} , {5,6,7,8}  };
        int[][] array2 = new int[2][3];
        int[][] array3 = new int[2][];  //行必须得有大小，列可填数字也可不

        //遍历二维数组
        /*
        //方法一：for循环嵌套
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.println((array1 [i] [j]));
            }
        }
        */

        /*
        //方法二：foreach循环嵌套
        for (int[] tem:array1
             ) {
            for (int x:tem
                 ) {
                System.out.print(x + " ");
            }
        }
        */

        /*
        //方法三：
        //二维数组是一个特殊的一维数组
        //本质上行存的是地址
        System.out.println(array1[0]);
        System.out.println(array1[1]);
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                System.out.print(array1[i][j] + " ");
            }
        }
        */

        /*
        //深度打印二维数组：Array.deeptoString(数组名字)
        System.out.println(array1);//打印结果是地址
        System.out.println(Arrays.deepToString(array1));//打印结果是正常的
        */


        /*
        int[][]array = new int[2][];
        array[0] = new int[]{1,2,3};
        array[1] = new int[]{1,2};
        System.out.println(Arrays.deepToString(array));

        */

    }

}
